The present disclosure relates to techniques for testing the compatibility of a software application with an operating system, thereby preventing execution failure of the application.
The increasing popularity of so-called smartphones has resulted in an enormous increase in the number of available software applications for these devices. In particular, by sharing a common operating system, such as the Android™ mobile operating system (from Google, Inc., of Mountain View, Calif.), smartphones from different cellular service providers can in principle execute a common version of a software application. In practice, this can be challenging, because of differences in the configurations of different smartphones and their capabilities.
For example, remote-payment applications allow users of smartphones to conduct financial transactions. In order to so, the users often have to provide payment information, such as credit-card or debit-card information. One way to provide this information is via a so-called ‘audio jack swiper.’ An audio jack swiper is an electronic device that can be electrically coupled to a smartphone via a 3.5 mm connector (which is commonly referred to as a ‘headphone jack’). Once the audio jack swiper is coupled to a smartphone, a compatible remote-payment application that executes on the smartphone can initiate two-way communication with the audio jack swiper. This allows a merchant who is also using the portable-payment application to receive the customer's credit- or debit-card information when they swipe their credit or debit card through the audio jack swiper. Then, the merchant relays this information to a financial institution (or an affiliated third party) to complete a financial transaction.
However, it has proven difficult to support the audio jack swiper with remote-payment applications on smartphones that use the Android mobile operating system, because the behavior of the audio jack swiper is often inconsistent on the more than fifty existing smartphones that presently use this operating system. In particular, on many smartphones attempts to use the audio jack swiper often result in a long initialization period (15-60 seconds) followed by a failure of a portable payment application to start. In some cases, the portable payment application crashes when attempting to communicate with the audio jack swiper. This wide range of unpredictable behaviors is frustrating to users and degrades the user experience.